/*
 * Usuario criado em 15/09/2008
 * 
 * Autores: Igor Benício de Mesquita
 * 
 */
package br.uniceub.fsw.seguranca.bo;

import br.uniceub.fsw.arquitetura.servico.exception.NegocioException;
import br.uniceub.fsw.seguranca.dao.UsuarioDAO;
import br.uniceub.fsw.seguranca.vo.UsuarioVO;

/**
 * Business Object da entidade Usuario. Essa classe é responsável por todos as
 * funcionalidades de negócio relacionadas à entidade.
 * 
 * @author Aluno RA
 */
public class UsuarioBO {

    UsuarioDAO usuarioDAO = new UsuarioDAO();
    
    /**
     * Valida se já existe um registro do Usuario no Banco de Dados como verificação para inserção.
     * 
     * @param usuario usuario a ser verificado.
     * @throws br.uniceub.fsw.arquitetura.servico.exception.RegraNegocioException caso o Usuario 
     * informado não possua nome para a verificação ou não já exista um Usuario com o mesmo nome no banco de dados.
     */
    public void validarVOUnico(UsuarioVO usuario) throws NegocioException {
        
        if(usuario.getNoUsuario() == null || usuario.getNoUsuario().trim().length() == 0)
            throw new NegocioException("Nome do Usuario não foi informado");
        
        UsuarioVO usuarioExemplo = new UsuarioVO();
        usuarioExemplo.setNoUsuario(usuario.getNoUsuario());
        
        if(usuarioDAO.consultarPorExemplo(usuarioExemplo).isEmpty())
            throw new NegocioException("Já existe um Usuario de nome " + usuario.getNoUsuario() +
                " na base de dados");
    }
    
    public void validarFormLogin(UsuarioVO usuario) throws NegocioException {
        if(usuario.getNoUsuario() == null || usuario.getNoUsuario().trim().length() == 0)
            throw new NegocioException("Nome do Usuario não foi informado");
        if(usuario.getDsSenha() == null || usuario.getDsSenha().trim().length() == 0)
            throw new NegocioException("Senha do Usuario não foi informada");
    }
}
